System and method for correcting a rolling display effect

ABSTRACT

A system for displaying, on a see-through display located within a moving platform, a frame, while at least partially correcting a rolling display effect.

TECHNICAL FIELD

The invention relates to a system and method for correcting a rollingdisplay effect.

BACKGROUND

The Vestibulo Ocular Reflex (herein abbreviated VOR) is a reflex, of thehuman eye whereby head movement causes movement of the eyes in anopposite direction (i.e., to that of the head). As the head moves, thesemicircular canals in the ears, which are spatially located in threeperpendicular planes, send signals to the brain indicative of thevelocity and acceleration of the head in all directions. The brain thensends signals to the muscles of the eye to move in an opposite directionto the direction of head movement. The VOR results in a stabilized imageon the retina of the eye as the head moves and allows the eyes to stayaligned and focused on an object even as the head moves.

Some display systems use pixel projection mechanisms for projectingframes comprised of a plurality of pixels on a reflective or semireflective surface designed to reflect the pixels into the eyes of auser viewing the surface, where not all pixels are projected on thesurface simultaneously. The pixels in such display systems can beprojected pixel-by-pixel, pixel-row by pixel-row, or in any othermanner, in which for at least a given pair of pixels, there is a timedifference between projecting the first pixel of the pair and the secondpixel of the pair on the surface.

In some cases, the surface on which such display systems project theframes is a see-through display, being a transparent surface, such as avisor of a helmet (or any other head worn system) worn by a user (e.g. apilot of an aircraft or any other operator of a stationary or movingplatform), treated with a semi-reflective treatment making visor acombiner, as is known in the art.

In those cases, where pixel projection mechanisms projects pixels(forming a frame) in a non-simultaneous manner on a see-through displayreflecting the pixels onto the eyes of the user, due to the VOR, objectsprojected by the pixel projection mechanism can appear distorted if thepose of the see-through display on which such objects are projectedchanges over time during projection of the pixels comprising the objects(while the pixel projection mechanism and the see-through display onwhich it projects maintain a fixed spatial relationship).

In addition, in some cases, adding to the complexity, it is desirable todisplay a plurality of elements (e.g. images, videos, text, symbols, orany other type of data that can be displayed on the see-through display)on the see-through display, in such a manner that at least a firstelement is displayed relative to a first coordinate system while atleast a second element is displayed relative to a second coordinatesystem, other than the first coordinate system. It is to be noted thatalthough reference is made herein to at least two elements, eachdisplayed relative to a corresponding coordinate system, in some casesmore than two elements can be displayed relative to more than twocorresponding coordinate systems.

In order to ease the understanding of the phenomena, reference in someexamples provided herein will be made to a scenario in which certainspatial relationship between two or more elements (comprised within aframe), projected by such display system on the see-through display, andtwo or more corresponding real-world objects, seen by the user throughthe see-through display, is required to be maintained. In the scenario,at least a first real-world-object is fixed to a first coordinate system(e.g. earth coordinate system), while at least a second real-worldobject is fixed to a second, coordinate system (e.g. a coordinate systemof a moving platform). For example, a first element projected on thesee-through display may be required to overlay the first real-worldobject (that is fixed to the first coordinate system) seen through thesee-through display while a second element projected on the see-throughdisplay may be required to overlay the second real-world object (that isfixed to the second coordinate system) seen through the see-throughdisplay. It is to be noted that in other cases, the one or more ofelements are not required to overlay the corresponding real-worldobjects, and instead they are required to be displayed at a certainother spatial relationship therewith (e.g. be parallel thereto). Thespatial relationships discussed above is compromised when the pose ofthe see-through display changes while the pixels are still beingprojected (i.e. at any given time between projection of the first pixeland the last pixel of a given image on the see-through display).

It is to be noted however that the distortion of the objects projectedby the pixel projection mechanism will occur irrespective of anyrelationship of such objects with real-word objects, in those caseswhere the pose of the see-through display on which such objects areprojected changes over time during the projection thereof.

Attention is drawn in this respect to FIGS. 1A, 1B and 1C. FIG. 1A is anillustration of a desired display of a frame comprising two elementsdisplayed relative to two different coordinate systems, each of theelements overlaying a corresponding real-world object (in theillustrated example—two corresponding vertical lines) seen through thesee-through display, in accordance with the prior art. FIG. 1B is anillustration of the rolling display effect occurring upon a change ofthe see-through display's pose relative to a first coordinate system(e.g. Earth coordinate system (also referred to herein as “real-worldcoordinate system”, interchangeably)) and, simultaneously, to a secondcoordinate system (e.g. a coordinate system of a moving platform (alsoreferred to herein as “platform coordinate system”, interchangeably) inwhich a user wearing the see-through display is located), while a givenframe is being projected by the pixel projection mechanism, inaccordance with the prior art. FIG. 1C is another illustration of thesame rolling display effect, in accordance with the prior art.

Looking at FIG. 1A, a frame 100 is shown, representing the real-world,having real-world coordinate system. A first vertical line 120 is shownwithin frame 100, being an object within the real-world (e.g. abuilding). In addition, frame 160 is shown, representing a movingplatform in which a user wearing the see-through display is located, themoving platform having its own coordinate system, other than thereal-world, coordinate system. A second vertical line 140 is shownwithin frame 160, being an object within the moving platform (e.g. aslider Graphical User Interface (GUI) object shown on a display withinthe moving platform).

Two elements are projected on the see-through display 110, namely twovertical lines: a first projected vertical line 130 (comprised, in theillustrated example, of four vertical pixels) and a second projectedvertical fine 150 (comprised, in the illustrated example, of threevertical pixels). The vertical lines, first projected vertical line 130and second projected vertical line 150, are projected so that: (a) allpixels of the first projected vertical line 130 are perceived by theuser viewing the see-through display as Vertical, and overlaying thefirst vertical line 120 within frame 100 representing the real-world, asdesired, and (b) all pixels of the second projected vertical line 150are perceived by the user viewing the see-through display as vertical,and overlaying the second vertical line 140 within the frame 160representing the moving platform, as desired. However, in the exampleshown in FIG. 1A, the see-through display's 110 pose does not changeduring projection of the pixels.

In the illustration shown in FIG. 1B, the see-through display's 110 posechanges over time, as the see-through display 110 moves at a certainangular rate to the left-hand side (changes its spatial position). Inaddition to the movement of the see-through display 110, the movingplatform performs a turn to the opposite side of the movement of thesee-through display 110. In the example, the see-through display's 110movement results in a shift of the see-through display 110, equivalentto one pixel to the left-hand side relative to earth coordinates, andtwo pixels shift to the left-hand side relative to the moving platformcoordinates, during presentation of each pixel row.

More specifically, at T0, being the time the projector projected thefirst pixel of the first projected vertical line 130 and the first pixelof the second projected vertical line 150 on the see-through display 110(i.e. the pixel located at the second row, seventh column (denoted inthe illustration “first pixel world”), and the pixel projected at thethird row, ninth column (denoted in the illustration “first pixelplatform”), in the seven by thirteen matrix of pixels projectable by theprojector), (a) the first pixel of the first projected vertical line 130is aligned with the first vertical line 120 (being an object fixed toearth in the illustrated example), and (b) the first pixel of the secondprojected vertical line 150 is aligned with the second vertical line 140(being an object fixed to the moving platform in the illustratedexample).

However, at T1, being the time the projector projected the second pixelof the first projected vertical line 130 and the second pixel of thesecond projected vertical line 150 on the see-through display 110 (i.e.the pixel located at the third row, seventh column (denoted in theillustration “second pixel world”), and the pixel projected at thefourth row, ninth column (denoted in the illustration “second pixelplatform”), in the seven by thirteen matrix of pixels projectable by theprojector), (a) due to the change in the see-through display's 110 poserelative to earth coordinates, the second pixel of the first projectedvertical line 130 is no longer aligned with the first vertical line 120,as it is shifted one pixel distance to the left-hand side with respectto the first vertical line 120, and (b) due to the change m thesee-through display's 110 pose relative to the moving platform'scoordinate system (a change that is, in the illustrated example,different than the change in the see-through display's 110 pose relativeto earth coordinates), the second pixel of the second projected verticalline 150 is no longer aligned with the second vertical line 140, as itis shifted two pixels distance to the left-hand side with respect to thesecond vertical line 140.

At T2, being the time the projector projected the third pixel of thefirst projected vertical line 130 and, the third pixel of the secondprojected vertical line 150 on the see-through display 110 (i.e. thepixel located at the fourth row, seventh column (denoted in theillustration “third pixel world”), and the pixel projected at the fifthrow, ninth column (denoted in the illustration “third pixel platform”)in the seven by thirteen matrix of pixels projectable by the projector),(a) due to the change in the see-through display's 110 pose relative toearth coordinates, the third pixel of the first projected vertical line130 is no longer aligned with the first vertical line 120, as it isshifted two pixels distance to the left-hand side with respect to thefirst, vertical line 120, and (b) due to the change in the see-throughdisplay's 110 pose relative to the moving platform's coordinate system,the third pixel of the second projected vertical line 150 is no longeraligned with the second vertical line 140, as it is shifted four pixelsdistance to the left-hand side with respect to the second vertical line140.

At T3, being the time the projector projected the fourth pixel of thefirst projected vertical line 130 on the see-through display 110 (i.e.the pixel located at the fifth row, seventh column (denoted in theillustration “fourth pixel world”) in the seven by thirteen matrix ofpixels projectable by the projector), due to the change in thesee-through display's 110 pose, the fourth pixel is no longer alignedwith the first vertical line 120, as it is shifted three pixel distanceto the left-hand side with respect to the first vertical line 120.

The pixel shifting effect illustrated in FIG. 1B is referred to hereinas a rolling display effect, and it results in the projected verticallines appearing diagonal instead of aligned with the first vertical line120 and the second vertical line 140. It can be appreciated that due tothe fact that the relative motion of the see-through display 110 withrespect to earth coordinate system is different than the relative motionof the see-through display 110 with respect to moving platformcoordinate system, the slopes of the first vertical line 120 and thesecond vertical line 140 are different.

It is to be noted that in the example illustrated in FIG. 1B, thesee-through display's 110 pose changes at a fixed rate with respect toboth earth coordinates and the moving platform's coordinates, howeverthis is not necessarily so, as the rate can be increased or decreasedduring projection of the pixels of a given frame. The pose change ratealso affects the pixel shifting distance, and the higher the pose changerate is relative to the respective coordinate system—the larger thepixel shifting distance is. It is to be further noted that the referenceherein to the first vertical line 120 and to the second vertical line140 is for illustration purposes only, and the rolling display affect isalso problematic without referring to real-world objects. For example,an attempt to project any object (e.g. a vertical line), will result inthe user, viewing the see-through display 110, perceiving the object ina distorted manner (e.g. a vertical line will appear to the user asdiagonal). It is to be further noted that although only two elements areprojected on the see-through display 110, in some cases more than twoelements can be displayed, while it may be desirable that each will befixed to a corresponding coordinate system. Furthermore, in some cases,more than two coordinate systems can exist (e.g. moving platform insideanother moving platform and earth, etc.)

To further exemplify the rolling display effect problem, attention isdrawn to FIG. 1C. In the illustrated example, the see-through display110 is connected to a helmet worn by a person located within a movingplatform (e.g. a pilot of an aircraft). An earth fixed object 15 withinthe real-world is also shown, fixed to earth coordinates (denoted Ec inthe illustration), and a moving platform fixed object 19 is shown, fixedto the moving platform's coordinates (denoted Pc in the illustration).Two elements are projected on the see-through display 110, namelyelement 11 and element 12. Element 11 is designed to be overlaid on topof the earth fixed object 15, and element 12 is designed to be overlaidon top of the moving platform fixed object 19. Line 17 represents theline of sight of the person located within the moving platform withrespect to the earth fixed object 15, and line 20 represents the line ofsight of the person located within the moving platform with respect tothe moving platform fixed object 19, at T0. T0 is the time the projectorprojected the first pixel of element 11 and element 12, as can beappreciated looking at the see-through display 110-T0. See-throughdisplay 110-T0 shows the projection of the first pixels of element 11and element 12.

In the illustrated example, the person wearing the helmet rotates hishead to the right-hand side, while the moving platform turns to theright hand side, so that at T1, the new line of sight of the personlocated within the moving platform with respect to the moving platformfixed object 19 (denoted 20A in the figure) is now at a degree α withrespect to line 20, whereas the new line of sight of the person locatedwithin the moving platform with respect to the earth fixed object 15(denoted 17A in the figure) is now at a degree 2α with respect to line17. As a result, the second pixel of element 11 is shifted one pixel tothe right, while the first pixel of element 12 is shifted two pixels tothe right, as can be appreciated looking at the see-through display110-T1. See-through display 110-T1 shows the projection of the secondpixels of element 11 and element 12.

There is thus a need in the art for a new method and system forcorrecting a rolling display effect.

References considered to be relevant as background to the presentlydisclosed subject matter are listed below. Acknowledgement of thereferences herein is not to be inferred as meaning that these are in anyway relevant to the patentability of the presently disclosed subjectmatter.

US Patent Application No. 2016/0189429 (Mallinson), published on Jun.30, 2016, discloses methods, systems, and computer programs for thepresentation of images in a Head-Mounted Display (HMD). One HMD includesa screen, a processor, inertial sensors, a motion tracker module, and adisplay adjuster module. The motion tracker tracks motion of the HMDbased on inertial data from the inertial sensors, and the displayadjuster produces modified display data for an image frame to be scannedto the screen if the motion of the HMD is greater than a thresholdamount of motion. The display data includes pixel values to be scannedto rows in sequential order, and the modified display data includesadjusted pixel values for pixels in a current pixel row of the imageframe to compensate for the distance traveled by the HMD during a timeelapsed between scanning a first pixel row of the image frame andscanning the current pixel row of the image frame.

US Patent Application No. 2016/0035139 (Fuchs et al.) published on Feb.4, 2016, discloses methods, systems, and computer readable media for lowlatency stabilization for head-worn displays are disclosed. According toone aspect, the subject matter described herein includes a system forlow latency stabilization of a head-worn display. The system includes alow latency pose tracker having one or more rolling-shutter cameras thatcapture a 2D image by exposing each row of a frame at a later point intime than the previous row and that output image data row by row, and atracking module for receiving image data row by row and using that datato generate a local appearance manifold. The generated manifold is usedto track camera movements, which are used to produce a pose estimate.

U.S. Pat. No. 9,595,083 (Smith et al.) published on Mar. 14, 2017,discloses an apparatus for image displaying. The apparatus includes aprediction system and an imaging system. The prediction system isconfigured to predict, for a first time, a first position of a displaydevice at a specific future time for displaying an image associated witha position of the display, and predict, for a second time that is laterthan the first time, a second position of the display at the future timewith an offset to the first position. The imaging system is configuredto render a first image associated with the first position, buffer thefirst image in a memory, and adjust the buffered first image accordingto the offset to generate a second image associated with the secondposition of the display device.

U.S. Pat. No. 5,933,125 (Fernie et al.) published on Aug. 3, 1999,discloses a method for reducing image instability in a virtualenvironment due to the transport delay of the image generator and othercomponents of the system. A method is given for determining the error inthe generated virtual environment and using this error for shifting theimage on the display device thus providing a more accurate and morestable representation to the viewer.

U.S. Pat. No. 9,443,355 (Chan et al.) published on Sep. 13, 2016,discloses methods for generating and displaying images associated withone or more virtual objects within an augmented reality environment at aframe rate that is greater than a rendering frame rate are described.The rendering frame rate may correspond with the minimum time to renderimages associated with a pose of a head-mounted display device (HMD). Insome embodiments, the HMD may determine a predicted pose associated witha future position and orientation of the HMD, generate a pre-renderedimage based on the predicted pose, determine an updated pose associatedwith the HMD subsequent to generating the pre-rendered image, generatean updated image based on the updated pose and the pre-rendered image,and display the updated image on the HMD. The updated image may begenerated via a homographic transformation and/or a pixel offsetadjustment of the pre-rendered image by circuitry within the display.

PCT Patent Application No. WO/2016/164207 (Crisler et al.) published onOct. 13, 2016, discloses a method to display video such ascomputer-rendered animation or other video. The method includesassembling a sequence of video frames featuring a moving object, eachvideo frame including a plurality of subframes sequenced for displayaccording to a schedule. The method also includes determining avector-valued differential velocity of the moving object relative to ahead of an observer of the video. At a time scheduled for display of afirst subframe of a given frame, first-subframe image contenttransformed by a first transform is displayed. At a time scheduled fordisplay of the second subframe of the given frame, second-subframe imagecontent transformed by a second transform is displayed. The first andsecond transforms are computed based on the vector-valued differentialvelocity to mitigate artifacts.

US Patent Application No. 2015/0235583 (Schowengerdt et al.) publishedon Aug. 20, 2015, discloses a user display device comprising a housingframe mountable on the head of the user, a lens mountable on the housingframe and a projection sub system coupled to the housing frame todetermine a location of appearance of a display object in a field ofview of the user based at least in part on at least one of a detectionof a head movement of the user and a prediction of a head movement ofthe user, and to project the display object to the user based on thedetermined location of appearance of the display object.

GENERAL DESCRIPTION

In accordance with a first aspect of the presently disclosed subjectmatter, there is provided a system for generating a frame for display ona see-through display, the frame comprising a plurality of pixelsarranged in a plurality of pixel rows, wherein at least a first group ofthe pixels represents a first element displayed relative to a firstcoordinate system and a second group of the pixels represents a secondelement displayed relative to a second coordinate system other than thefirst coordinate system, wherein a time difference exists between afirst time of displaying a reference pixel row of the pixel rows and asecond time of displaying a given pixel row of the pixel rows, whereinthe given pixel row is any pixel row of the pixel rows subsequent to thereference pixel row, and wherein a first pose of the see-through displayat the first time is different than a second pose of said see-throughdisplay at the second time, thereby causing a rolling display effect,the system comprising a processor configured to: determine, using firstinformation of the first pose and second information of the second pose,a first relative spatial movement of the see-through display withrespect to the first coordinate system and a second relative spatialmovement of the see-through display with respect to the secondcoordinate system; generate the frame by adjusting a first position ofthe pixels in the first group displayed at the first time to at leastpartially compensate for the first relative spatial movement andadjusting a second position of the pixels in the second group displayedat the second time to at least partially compensate for the secondrelative spatial movement, thereby at least reducing the rolling displayeffect; and display the frame on the see-through display.

In some cases, the first relative spatial movement of the see-throughdisplay with respect to the first coordinate system and the secondrelative spatial movement of the see-through display with respect to thesecond coordinate system are not identical and therefore the adjustingof the first position and the adjusting of the second position are notidentical.

In some cases, the first group of the pixels is arranged in a pluralityof first pixel rows of the pixel rows and the second group of the pixelsis arranged in a plurality of second pixel rows of the pixel rows, otherthan the first pixel rows and wherein the determine and the adjustingare performed for each succeeding pixel row of the pixel rows,succeeding the reference pixel row, wherein the second pose for eachsucceeding pixel row is determined based on the time difference betweendisplaying the reference pixel row and displaying the correspondingsucceeding pixel row.

In some cases, the first group of the pixels is arranged in a pluralityof first pixel rows of the pixel rows and the second group of the pixelsis arranged in a plurality of second pixel rows of the pixel rows, otherthan the first pixel rows and wherein the determine and the adjustingare performed for a plurality of groups of succeeding pixel rows of thepixel rows, succeeding the reference pixel row, wherein the second posefor each succeeding groups of succeeding pixel rows is determined basedon the time difference between displaying the reference pixel row anddisplaying the corresponding succeeding group of succeeding pixel rows.

In some cases, the system further comprises at least (a) a first buffercontaining the first group of the pixels and (b) a second buffercontaining the second group of the pixels, and the adjusting isperformed on the first group of the pixels within the first buffer andon the second group of the pixels within the second buffer and whereinthe generate includes applying a first correction on the first group ofthe pixels in the first buffer and a second correction on the secondgroup of the pixels in the second buffer.

In some cases, the adjusting is performed when the first relativespatial movement or the second relative spatial movement exceeds athreshold.

In some cases, the first pose is a current pose of the see-throughdisplay.

In some cases, the system further comprises a projector, and thedisplaying of the given pixel row is performed by the projector.

In some cases, an image source of the projector is an Organic LightEmitting Diode (OLED) image source.

In some cases, the system further comprises one or more pose sensorsconfigured to obtain information enabling determination of the secondpose of the see-through display by tracking the see-through display'spose relative to a fixed coordinate system established in space, and thesecond pose is determined based on the information.

In some cases, the pose sensors include at least one of the following:(a) an inertial measurement unit; (b) a magnetic tracker; or (c) anoptical tracker.

In some cases, the frame is obtained from a frame source.

In some cases, the frame source is a night vision camera.

In some cases, the night vision camera is connected to a helmet worn bya user.

In some cases, the user is an operator of a moving platform.

In some cases, the pose is relative to the moving platform and to afixed coordinate system established in space.

In some cases, at least one of the first symbol and the second symbol isa computer-generated symbol.

In some cases, the see-through display is a visor of a helmet worn by auser.

In some cases, the user is an operator of a moving platform.

In some cases, the first coordinate system is a coordinate system of themoving platform.

In some cases, the first coordinate system is a coordinate system of amoving platform and the second coordinate system is earth coordinatesystem.

In some cases, the system is a head-worn system.

In some cases, the second time is a future time and the second pose is apredicted pose of said see-through display at the future time.

In accordance with a second aspect of the presently disclosed subjectmatter, there is provided a method for generating a frame for display ona see-through display, the frame comprising a plurality of pixelsarranged in a plurality of pixel rows, wherein at least a first group ofthe pixels represents a first element displayed relative to a firstcoordinate system and a second group of the pixels represents a secondelement displayed relative to a second coordinate system other than thefirst coordinate system, wherein a time difference exists between afirst time of displaying a reference pixel row of the pixel rows and asecond time of displaying a given pixel row of the pixel rows, whereinthe given pixel row is any pixel row of the pixel rows subsequent to thereference pixel row, and wherein a first pose of the see-through displayat the first time is different than a second pose of said see-throughdisplay at the second time, thereby causing a rolling display effect,the method comprising: determining, by a processing resource, usingfirst information of the first pose and second information of the secondpose, a first relative spatial movement of the see-through display withrespect to the first coordinate system and a second relative spatialmovement of the see-through display with respect to the secondcoordinate system; generating, by the processing unit, the frame byadjusting a first position of the pixels in the first group displayed atthe first time to at least partially compensate for the first relativespatial movement and adjusting a second position of the pixels in thesecond group displayed at the second time to at least partiallycompensate for the second relative spatial movement, thereby at leastreducing the rolling display effect; and displaying the frame on thesee-through display.

In some cases, the first relative spatial movement of the see-throughdisplay with respect to the first coordinate system and the secondrelative spatial movement of the see-through display with respect to thesecond coordinate system are not identical and therefore the adjustingof the first position and the adjusting of the second position are notidentical.

In some cases, the first group of the pixels is arranged in a pluralityof first pixel rows of the pixel rows and the second group of the pixelsis arranged in a plurality of second pixel rows of the pixel rows, otherthan the first pixel rows and wherein the determine and the adjustingare performed for each succeeding pixel row of the pixel rows,succeeding the reference pixel row, wherein the second pose for eachsucceeding pixel row is determined based on the time difference betweendisplaying the reference pixel row and displaying the correspondingsucceeding pixel row.

In some cases, the first group of the pixels is arranged in a pluralityof first pixel rows of the pixel rows and the second group of the pixelsis arranged in a plurality of second pixel rows of the pixel rows, otherthan the first pixel rows and wherein the determining and the adjustingare performed for a plurality of groups of succeeding pixel rows of thepixel rows, succeeding the reference pixel row, wherein the second posefor each succeeding groups of succeeding pixel rows is determined basedon the time difference between displaying the reference pixel row anddisplaying the corresponding succeeding group of succeeding pixel rows.

In some cases, the adjusting is performed (a) on the first group of thepixels within a first buffer containing the first group of the pixelsand (b) on the second group of the pixels within a second buffercontaining the second group of the pixels; and wherein the generatingincludes applying a first correction on the first group of the pixels inthe first buffer and a second correction on the second group of thepixels in the second buffer.

In some cases, the adjusting is performed when the first relativespatial movement or the second relative spatial movement exceeds athreshold.

In some cases, the first pose is a current pose of the see-throughdisplay.

In some cases, the displaying of the given pixel row is performed by aprojector.

In some cases, an image source of the projector is an Organic LightEmitting Diode (OLED) image source.

In some cases, the second pose is determined based on informationobtained by one or more pose sensors configured to obtain theinformation by tracking the see-through display's pose relative to afixed coordinate system established in space.

In some cases, the pose sensors include at least one of the following:(a) an inertial measurement unit; (b) a magnetic tracker; or (c) anoptical tracker.

In some cases, the frame is obtained from a frame source.

In some cases, the frame source is a night vision camera.

In some cases, the night vision camera is connected to a helmet worn bya user.

In some cases, the user is an operator of a moving platform.

In some cases, the pose is relative to the moving platform and to afixed coordinate system established in space.

In some cases, at least one of the first symbol and the second symbol isa computer-generated symbol.

In some cases, the see-through display is a visor of a helmet worn by auser.

In some cases, the user is an operator of a moving platform.

In some cases, the first coordinate system is a coordinate system of themoving platform.

In some cases, the first coordinate system is a coordinate system of amoving platform and the second coordinate system is earth coordinatesystem.

In some cases, the method is performed on a head-worn system.

In some cases, the second time is a future time and the second pose is apredicted pose of said see-through display at the future time.

In accordance with a third aspect of the presently disclosed subjectmatter, there is provided a non-transitory computer readable storagemedium having computer readable program code embodied therewith, thecomputer readable program code, executable by at least one processor toperform a method for generating a frame for display on a see-throughdisplay, the frame comprising a plurality of pixels arranged in aplurality of pixel rows, wherein at least a first group of the pixelsrepresents a first element displayed relative to a first coordinatesystem and a second group of the pixels represents a second elementdisplayed relative to a second coordinate system other than the firstcoordinate system, wherein a time difference exists between a first timeof displaying a reference pixel row of the pixel rows and a second timeof displaying a given pixel row of the pixel rows, wherein the givenpixel row is any pixel row of the pixel rows subsequent to the referencepixel row, and wherein a first pose of the see-through display at thefirst time is different than a second pose of said see-through displayat the second time, thereby causing a rolling display effect, the methodcomprising: determining, by a processing resource, using firstinformation of the first pose and second information of the second pose,a first relative spatial movement of the see-through display withrespect to the first coordinate system and a second relative spatialmovement of the see-through display with respect to the secondcoordinate system; generating, by the processing unit, the frame byadjusting a first position of the pixels in the first group displayed atthe first time to at least partially compensate for the first relativespatial movement and adjusting a second position of the pixels in thesecond group displayed at the second time to at least partiallycompensate for the second relative spatial movement, thereby at leastreducing the rolling display effect; and displaying the frame on thesee-through display.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to understand the presently disclosed subject matter and to seehow it may be carried out in practice, the subject matter will now bedescribed, by way of non-limiting examples only, with reference to theaccompanying drawings, in which:

FIG. 1A is an illustration of a desired display of a frame comprising asingle line, comprised of five vertical pixels, overlaying acorresponding real-world vertical line seen through a see-throughdisplay, in accordance with the prior art;

FIG. 1B is an illustration of the rolling display effect occurring upona change of a see-through display's pose relative to the real-worldvisible therethrough, while a given frame is being projected by a pixelprojection mechanism, in accordance with the prior art;

FIG. 1C is another illustration of the rolling display effect occurringupon a change of a see-through display's pose relative to the real-worldvisible therethrough, while a given frame is being projected by a pixelprojection mechanism, in accordance with the prior art;

FIG. 2 is a block diagram schematically illustrating one example of asystem for correcting a rolling display effect, in accordance with thepresently disclosed subject matter;

FIG. 3 is a flowchart illustrating one example of a sequence ofoperations carried out for correcting a rolling display effect, inaccordance with the presently disclosed subject matter; and

FIG. 4 is an illustration of the correction of the rolling displayeffect, in accordance with the presently disclosed subject matter.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the presentlydisclosed subject matter. However, it will be understood by thoseskilled in the art that the presently disclosed subject matter may bepracticed without these specific details. In other instances, well-knownmethods, procedures, and components have not been described in detail soas not to obscure the presently disclosed subject matter.

In the drawings and descriptions set forth, identical reference numeralsindicate those components that are common to different embodiments orconfigurations.

Unless specifically stated otherwise, as apparent from the followingdiscussions, it is appreciated that throughout the specificationdiscussions utilizing terms such as “obtaining”, “adjusting”,“displaying”, “receiving”, “determining” or the like, include actionand/or processes of a computer that manipulate and/or transform datainto other data, said data represented as physical quantities, e.g. suchas electronic quantities, and/or said data representing the physicalobjects. The terms “computer”, “processor”, and “controller” should beexpansively construed to cover any kind of electronic device with dataprocessing capabilities, including, by way of non-limiting example, apersonal desktop/laptop computer, a server, a computing system, acommunication device, a smartphone, a tablet computer, a smarttelevision, a processor (e.g. digital signal processor (DSP), amicrocontroller, a field programmable gate array (FPGA), an applicationspecific integrated circuit (ASIC), etc.), a group of multiple physicalmachines sharing performance of various tasks, virtual serversco-residing on a single physical machine, any other electronic computingdevice, and/or any combination thereof.

The operations in accordance with the teachings herein may be performedby a computer specially constructed for the desired purposes or by ageneral-purpose computer specially configured for the desired purpose bya computer program stored in a non-transitory computer readable storagemedium. The term “non-transitory” is used herein to exclude transitory,propagating signals, but to otherwise include any volatile ornon-volatile computer memory technology suitable to the application.

As used herein, the phrase “for example,” “such as”, “for instance” andvariants thereof describe non-limiting embodiments of the presentlydisclosed subject matter. Reference in the specification to “one case”,“some cases”, “other cases” or variants thereof means that a particularfeature, structure or characteristic described in connection with theembodiment(s) is included in at least one embodiment of the presentlydisclosed subject matter. Thus, the appearance of the phrase “one case”,“some cases”, “other cases” or variants thereof does not necessarilyrefer to the same embodiment(s).

It is appreciated that, unless specifically stated otherwise, certainfeatures of the presently disclosed subject matter, which are, forclarity, described in the context of separate embodiments, may also beprovided in combination in a single embodiment. Conversely, variousfeatures of the presently disclosed subject matter, which are, forbrevity, described in the context of a single embodiment, may also beprovided separately or in any suitable sub-combination.

In embodiments of the presently disclosed subject matter, fewer, moreand/or different stages than those shown in FIG. 3 may be executed. Inembodiments of the presently disclosed subject matter one or more stagesillustrated in FIG. 3 may be executed in a different order and/or one ormore groups of stages may be executed simultaneously. FIG. 2 illustratea general schematic of the system architecture in accordance with anembodiment of the presently disclosed subject matter. Each module inFIG. 2 can be made up of any combination of software, hardware and/orfirmware that performs the functions as defined and explained herein.The modules in FIG. 2 may be centralized in one location or dispersedover more than one location. In other embodiments of the presentlydisclosed subject matter, the system may comprise fewer, more, and/ordifferent modules than those shown in FIG. 2.

My reference in the specification to a method should be applied mutatismutandis to a system capable of executing the method and should beapplied mutatis mutandis to a non-transitory computer readable mediumthat stores instructions that once executed by a computer result in theexecution of the method.

Any reference in the specification to a system should be applied mutatismutandis to a method that may be executed by the system and should beapplied mutatis mutandis to a non-transitory computer readable mediumthat stores instructions that may be executed by the system.

Any reference in the specification to a non-transitory computer readablemedium should be applied mutatis mutandis to a system capable ofexecuting the instructions stored in the non-transitory computerreadable medium and should be applied mutatis mutandis to method thatmay be executed by a computer that reads the instructions stored in thenon-transitory computer readable medium.

Bearing this in mind, attention is drawn to FIG. 2, a block diagramschematically illustrating one example of a system for correcting arolling display effect, in accordance with the presently disclosedsubject matter.

According to certain examples of the presently disclosed subject matter,system 200 can comprise a projection surface 260 and a projector 210.The projector 210 is configured to project frames comprised of aplurality of pixels on the projection surface 260, where not all pixelsare projected on the projection surface 260 simultaneously. Theprojector 210 projects the frames pixel-by-pixel, pixel-row bypixel-row, or in any other manner, in which for at least a given pair ofpixels, there is a time difference between the projector 210 projectingthe first pixel of the pair and the second pixel of the pair on theprojection surface 260. In some cases, at least a first group of thepixels represents a first element displayed relative to a firstcoordinate system and a second group of the pixels represents a secondelement displayed relative to a second coordinate system other than thefirst coordinate system.

It is to be noted that when reference is made herein to a frame, it doesnot necessarily cover the entire projection surface 260 or the entiredisplay area, and it can optionally cover only parts thereof.

In some cases, the projection surface 260, on which the projector 210projects the frames, is a reflective or semi reflective surface designedto reflect the pixels into the eyes of a user viewing the surface. Inmore specific cases, the projection surface 260 is a see-throughdisplay, being a transparent surface, such as a visor of a helmet (orany other head worn system) worn by a user (e.g. a pilot of an aircraftor any other operator of a stationary or moving platform), treated witha semi-reflective treatment making it a combiner, as is known in theart.

It is an objective of the presently disclosed subject matter to reduce,or prevent, distortion of elements (also referred to herein,interchangeably as “objects”, where the elements/objects can be, forexample, images, videos, text, symbols, or any other type of data thatcan be displayed on the see-through display) projected by the projector210, in those cases where the pose of the projection surface 260 onwhich such elements are projected changes over time during theprojection thereof, due to the rolling display effect. This will enablemaintaining a certain relationship between one or more elements(comprised within a frame) projected by the projector 210 on theprojection surface 260 and one or more corresponding objects that may befixed to a coordinate system other than the coordinate system of theprojection surface 260 (e.g. earth coordinate system, moving platformcoordinate system, etc.), while reducing, or eliminating, the rollingdisplay effect described above (caused inter alia due to changes of theprojection surface's 260 pose).

In some cases, projector 210 may comprise an image source such as anOrganic Light Emitting Diode.

System 200 further comprises one or more pose sensors 220 configured toobtain information enabling a pose estimator 240 to determine apredicted pose of the projection surface 260 relative to at least onecoordinate system established in space (e.g. earth coordinates), and insome cases, at least two different coordinate systems (e.g. earthcoordinate system and moving platform's coordinate system), at variousfuture points-in-time. The pose sensors 220 can include one or more ofthe following: one or more inertial sensors (e.g. inertial measurementunits), one or more magnetic sensors (e.g. magnetic tracker), one ormore optical sensors (e.g. an optical tracker). It is to be noted thatany other sensor, or combination of sensors, can be used, mutatismutandis, as long as the information obtained thereby enables a poseestimator 240 to determine a predicted pose of the projection surface260 relative to a fixed coordinate system established in space (e.g.earth coordinates), and in some cases, at least two different coordinatesystems (e.g. earth coordinate system and moving platform's coordinatesystem), at various future points-in-time.

It is to be noted that in some cases, e.g. when it is desirable todetermine a predicted pose of the projection surface 260 relative to twodifferent coordinate systems (e.g. earth coordinate system and movingplatform's coordinate system), at least two pose sensors 220 may berequired. In an example where the projection surface 260 is locatedwithin a moving platform, one pose sensor 220 can be obtain informationof pose changes of the projection surface 260, and another pose sensorcan obtain information of pose changes of the moving platform. In suchcases, in order to determine a predicted pose of the projection surface260 relative a fixed coordinate system established in space (e.g. earthcoordinates), pose estimator 240 is required to obtain information fromthe pose sensors 220 associated with the projection surface 260, as wellas information from pose sensors associated with the moving platform.The pose estimator 240 integrates the information from both data sourcesin order to determine a predicted pose of the projection surface 260relative to a fixed coordinate system established in space (e.g. earthcoordinates).

System 200 can further comprise a data repository 270 (e.g. a database,a storage system, a memory including Read Only Memory—ROM, Random AccessMemory—RAM, or any other type of memory, etc.) configured to store data,including, inter alia, frames (or parts thereof) for display, elements(such as symbols) to overlay, etc.

System 200 further comprises a processing resource 230. The processingresource 230 can include one or more processing units (e.g. centralprocessing units), microprocessors, microcontrollers (e.g.microcontroller units (MCUs)) or any other computing devices or modules,including multiple and/or parallel and/or distributed processing units,which are adapted to independently or cooperatively process data forcontrolling relevant system 200 resources and for enabling operationsrelated to system's 200 resources (e.g. projecting frames, adjustingpixels, etc.).

The processing resource 230 can comprise one or more of the followingmodules: pose estimator 240 and pixel adjuster 250.

According to some examples of the presently disclosed subject matter,pose estimator 240 is configured to obtain information from the posesensors 220, and determine, based on the obtained information, apredicted pose of the projection surface 260, relative to one or morecoordinate systems established in space (e.g. earth coordinates), and insome cases, relative to at least two different coordinate systems (e.g.earth coordinate system and moving platform's coordinate system), at afuture time (it is to be noted that when reference is made to the poseof the projection surface 260 throughout the description, it refers to apose thereof relative to a corresponding coordinate system (e.g. earthcoordinates, or moving platform coordinates)). Pose estimator 240 candetermine the predicted pose using various methods and/or techniques,known and/or proprietary.

Pixel adjuster 250 is configured to adjust the position of one or morepixels/pixel rows of a given frame, so as to align the pixel/pixel rowwith the predicted pose (assuming that the predicted pose is differentthan the current pose when projecting the pixel/pixel row), thereby atleast reducing, if not eliminating, a rolling display effect, as furtherdetailed herein, inter alia with reference to FIG. 3. It is to be notedthat adjustment of the position can be performed by moving the pixelswithin their respective pixel rows or by moving the pixel rowsaltogether.

In some cases, a first group of the pixels of the given frame representsa first element displayed relative to a first coordinate system, and asecond group of the pixels (other than the first group) of the givenframe represents a second element displayed relative to a secondcoordinate system other than the first coordinate system. In such cases,the pixel adjuster 250 can be configured to adjust a first position ofthe pixels in the first group so as to compensate for the first relativespatial movement and adjusting a second position of the pixels in thesecond group so as to compensate for the second relative spatialmovement, as further detailed herein, inter alia with reference to FIG.3.

It is to be noted that the projector 210 and the projection surface 260can have a fixed spatial relationship, e.g. in case both are fixed on acommon object such as a helmet (or any other head worn system) of theuser. However, in other cases, when the projector 210 and the projectionsurface 260 do not have a fixed spatial relationship, information of therelative movement between the projector 210 and the projection surface260 is also required in order to adjust the pixels/pixel rows positionwithin the frame.

It is to be noted that in some cases, the system 200 can be integratedwith a Head Mounted Device (e.g. a helmet) of a user thereof, while thehelmet can comprise all, or part of the system 200 components, while insome cases, parts of the system 200 may be external thereto.

Turning to FIG. 3, there is shown a flowchart illustrating one exampleof a sequence of operations carried out for correcting a rolling displayeffect, in accordance with the presently disclosed subject matter.

According to some examples of the presently disclosed subject matter,system 200 can be configured to perform a pixel adjustment process 300,e.g. utilizing the pixel adjuster 250. The pixel adjustment process 300can be performed while the projector 210 projects a frame, comprising aplurality of pixels arranged in a plurality of pixel rows, on theprojection surface 260. In some cases, at least a first group of thepixels represents a first element displayed relative to a firstcoordinate system and a second group of the pixels represents a secondelement displayed relative to a second coordinate system other than thefirst coordinate system.

The pixel adjustment process 300 is required in those cases where: (a) atime difference exists between a first time of displaying a referencepixel row (that can be the first pixel row) of the pixel rows and asecond time of displaying a given pixel row of the pixel rows, whereinthe given pixel row is any pixel row of the pixel rows subsequent to thereference pixel row, and (b) a pose of the projection surface 260 at thefirst time is different than a predicted pose of the projection surface260 at the second time, relative to at least one of the first coordinatesystem or the second coordinate system (and, if there are more than twoelements to be displayed relative to more than two respective coordinatesystems, any pose difference relative to any one of the coordinatesystems).

In such cases, pixel adjuster 250 can be configured to perform the pixeladjustment process 300, being an intra-frame process, during which aframe is generated and for display on the projection surface 260 (e.g. asee-through display). The generated frame comprises a plurality ofpixels arranged in a plurality of pixel rows, wherein at least a firstgroup of the pixels represents a first element displayed relative to afirst coordinate system (e.g. earth coordinate system) and a secondgroup of the pixels represents a second element displayed relative to asecond coordinate system (e.g. moving platform coordinate system) otherthan the first coordinate system. In some cases (a) a time differenceexists between a first time during which a reference pixel row (that canoptionally be the first pixel row) of the pixel rows is displayed, or isexpected to be displayed, and a second time during which a given pixelrow of the pixel rows, being any pixel row of the pixel rows subsequentto the reference pixel row is displayed, or is expected to be displayed,and (b) a first pose of the projection surface 260 at the first time isdifferent than a second pose of said projection surface 260 at thesecond time, thereby causing a rolling display effect.

In order to prevent, or at least reduce, the rolling display effect, thepixel adjustment process 300 includes obtaining information of the firstpose of a projection surface 260 at the first time, and information ofthe second pose of the projection surface 260 at the second time (block310). The information of the first pose can be determined usinginformation gathered by a pose sensor 220 that provides information ofpose changes of the projection surface 260, and the information of thesecond pose can be determined using information gathered by another posesensor 220 that provides information of pose changes of the movingplatform. It is to be noted that the first pose can be a current pose ofthe projection surface 260, or a predicted pose thereof. It is to befurther noted that the second pose can be a predicted pose of theprojection surface 260, at a future time.

The obtained information of the first pose and second pose can be withrespect to multiple coordinate systems, such as the first coordinatesystem (e.g. earth coordinate system) and the second coordinate system(e.g. moving platform coordinate system).

The pixel adjustment process 300 further includes determining, using theinformation of the first pose and the second pose, (a) a relativespatial movement of the projection surface 260 with respect to the firstcoordinate system, and (b) a second relative spatial movement of theprojection surface 260 with respect to the second coordinate system(block 320).

Pixel adjustment process 300 can be configured to generate the frame byadjusting a first position of the pixels in the first group displayed atthe first time to at least partially compensate for the first relativespatial movement and adjusting a second position of the pixels in thesecond group displayed at the second time to at least partiallycompensate for the second relative spatial, movement, and thereby atleast reducing the rolling display effect (block 330).

It is to be noted, in this respect, that the relative spatial movementof the see-through display with respect to the first coordinate systemand the relative spatial movement of the see-through display withrespect to the second coordinate system are not identical and thereforethe adjusting of the first position and the adjusting of the secondposition are not identical, as will be further exemplified withreference to FIG. 4.

In some cases, the first group of the pixels can be arranged in aplurality of first pixel rows of the pixel rows (e.g. the even numberedrows) while the second group of the pixels is arranged in a plurality ofsecond pixel rows of the pixel rows (e.g. odd numbered rows), other thanthe first pixel rows.

In such cases, the determine of block 320 and the adjusting of block 330can be performed for each succeeding pixel row of the pixel rows,succeeding the reference pixel row (or only to at least part, or all, ofthose succeeding pixel rows that include at least one pixel of the firstgroup or the second group), while the second pose for each suchsucceeding pixel row used at block 320 is determined based on the timedifference between displaying the first pixel row and displaying thecorresponding succeeding pixel row. This means that if a given number ofpixel rows exists, the determine of block 320 and the adjusting of block330 will be performed for each of the pixel rows, and in those caseswhere there is a predicted pose difference between the corresponding rowand the reference pixel row, the position of the pixels, if required,will be adjusted as detailed above.

In some cases, the determine of block 320 and the adjusting of block 330will only be performed for those pixel rows for which the differencebetween a pose of the projection surface 260 at the first time and apredicted pose of the projection surface 260 at the second time islarger than a given threshold (e.g. only in case the pose difference islikely to cause a rolling display effect that can be detected by thehuman eyes, or only in those cases where the pose difference is likelyto cause spatial orientation difficulties for a pilot viewing theprojection surface 260, etc.).

Alternatively, the determine of block 320 and the adjusting of block 330can be performed for a plurality of groups of succeeding pixel rows ofthe pixel rows (instead of separately for each pixel row), succeedingthe reference pixel row, while the second pose for each succeedinggroups of succeeding pixel rows is determined based on the timedifference between displaying the reference pixel row and displaying thecorresponding succeeding group of succeeding pixel rows.

In accordance with another example, the system 200 can further comprise,e.g. in the data repository 270, at least (a) a first buffer containingthe first group of the pixels and (b) a second buffer containing thesecond group of the pixels. In such cases, the adjusting of block 330can be performed on the first group of the pixels within the firstbuffer and on the second group of the pixels within the second buffer,by applying a first correction on the first group of the pixels in thefirst buffer and a second correction on the second group of the pixelsin the second buffer. The information within first buffer and theinformation within the second buffer (and optionally additional buffers)can then be combined to give rise to the generated frame.

Pixel adjustment process 300 can be configured to display (e.g. usingthe projector 210) the generated frame on the see-through display (block340).

In some cases, the frame to be displayed at block 340 is received by theimage source from a frame source such as a camera. In more particularcases, the camera can be, for example, an IR camera, a visible lightcamera, a night vision camera and the like. The frame may be a frame ofsynthetic/virtual data retrieved from data repository 270 for thepurpose of display thereof on the projection surface 260. The framesdelivered to the image source can be light intensified (FLIR (forwardlooking infrared) image, an ICCD (intensified charge coupled device)image, a night vision image, etc.), infrared images, or otherwise imagesnot normally visible to the human eye. In some cases. The image sourceand/or the projector 210 and/or the projection surface 260 can have afixed spatial relationship, e.g. in case corresponding two or more ofthem are fixed on a common object such as a helmet (or any other headworn system) of the user. In other cases, the frame source can beconnected to the platform operated by the user viewing the projectionsurface 260.

In additional/alternative cases, the frame to be displayed on theprojection surface 260, or at least part of the elements comprisedtherein (e.g. a level indicator, a target marker, a crosshair, etc.),can be computer-generated.

It is to be noted that, with reference to FIG. 3, some of the blocks canbe integrated into a consolidated block or can be broken down to a fewblocks and/or other blocks may be added. It should be also noted thatwhilst the flow diagram is described also with reference to the systemelements that realizes them, this is by no means binding, and the blockscan be performed by elements other than those described herein.

FIG. 4 is an illustration of the correction of the rolling displayeffect, in accordance with the presently disclosed subject matter.

In the illustrated example, the see-through display's 110 movementrelative to the first coordinate system (e.g. earth coordinate system)results in a shift of the see-through display 110, equivalent to onepixel to the left-hand side, during presentation of each pixel row,whereas the see-through display's 110 movement relative to the secondcoordinate system (e.g. moving platform coordinate system) results in ashift of the see-through display 110, equivalent to two pixel to theleft-hand side, during presentation of each pixel row, as described withrespect to FIG. 1B.

However, in the illustrated example, the system 200 executes the pixeladjustment process 300 to compensate for such shift, so that the firstprojected vertical line 130 and the second projected vertical line 150,projected by the projector 210, are perceived as intended by the user,viewing the see-through display 110 (i.e. as aligned with the firstvertical line 120 (being a certain object within the real-world) andwith the second vertical line 140 (being an object within the movingplatform), respectively).

In the illustrated example, the first projected vertical line 130 isrequired to be aligned with the first vertical line 120, and the secondprojected vertical line 150 is required to be aligned with the secondvertical line 140. It is to be noted that the distortion of the firstprojected vertical line 130 and of the second projected vertical line150 will occur irrespective of their relationship with the firstvertical line 120 and with the second vertical line 140, respectively,in those cases where the pose of the see-through display 110 on whichthe first projected vertical line 130 and the second projected verticalline 150 are projected changes over time during the projection thereof.Reference is made herein to the first vertical line 120 and to thesecond vertical line 140 for ease of understanding only, and it is by nomeans binding.

More specifically, at T0, being the time the projector 210 projected thefirst pixel of the first projected vertical line 130 and of the secondprojected vertical line 150 on the see-through display 110 (i.e. thepixel located at the second row, seventh column (denoted “original firstpixel world”) and the pixel located at the third row, ninth column(denoted “original first pixel platform”) in the seven by thirteenmatrix of pixels projectable by the projector 210), the first pixel ofthe first projected vertical line 130 is aligned with the first verticalline 120 and the first pixel of the second projected vertical line 150is aligned with the second vertical line 140, and no compensation isrequired. It is to be noted that in some cases (not shown), also thefirst pixel is shifted and the pixel adjustment process 300 cancompensate also for the first pixel shifting.

At T1 (being the time the projector 210 projected the second pixel ofthe first projected vertical line 130, and the second pixel of thesecond projected vertical line 150 on the see-through display 110), thesee-through display's 110 pose changed, so that (a) the second pixel ofthe first projected vertical line 130 originally located at the thirdrow, seventh column, is no longer aligned with the first vertical line120, as it is shifted one pixel distance to the left-hand side withrespect to the first vertical line 120, and (b) the second pixel of thesecond projected vertical line 150 originally located at the fourth row,ninth column, is no longer aligned with the second vertical line 140, asit is shifted two pixel distance to the left-hand side with respect tothe first vertical line 120. There is therefore a need to shift (a) thesecond pixel of the first projected vertical line 130 a distance of onepixel to the right, so that after the shifting the second pixel of thefirst projected vertical line 130 is located at the third row, eighthcolumn, and (b) the second pixel of the second projected vertical line150 a distance of two pixels to the right, so that after the shiftingthe second pixel of the second projected vertical line 150 is located atthe fourth row, eleventh column. Such shifting results in the shiftedsecond pixel of the first projected vertical line 130 being aligned withthe first vertical line 120 and in the shifted second pixel of thesecond projected vertical line 150 being aligned with the secondvertical line 140.

At T2 (being the time the projector 210 projected the third pixel of thefirst projected vertical line 130, and the third pixel of the secondprojected vertical line 150 on the see-through display 110), thesee-through display's 110 pose changed further, so that (a) the thirdpixel of the first projected vertical line 130 originally located at thefourth row, seventh column, is no longer aligned with the first verticalline 120, as it is shifted two pixels distance to the left-hand sidewith respect to the first vertical line 120, and (b) the third pixel ofthe second projected vertical line 150 originally located at the fifthrow, ninth column, is no longer aligned with the second vertical line140, as it is shifted four pixel distance to the left-hand side withrespect to the first vertical line 120. There is therefore a need toshift (a) the third pixel of the first projected vertical line 130 adistance of two pixels to the right, so that after the shifting thethird pixel of the first projected vertical line 130 is located at thefourth row, ninth column, and (b) the third pixel of the secondprojected vertical line 150 a distance of four pixels to the right, sothat after the shifting the second pixel of the second projectedvertical line 150 is located at the fifth row, thirteenth column. Suchshifting results in the shifted third pixel of the first projectedvertical line 130 being aligned with the first vertical line 120 and inthe shifted third pixel of the second projected vertical line 150 beingaligned with the second vertical line 140.

At T3 (being the time the projector 210 projected the fourth pixel ofthe first projected vertical line 130 on the see-through display 110),the see-through display's 110 pose changed even further, so that thefourth pixel of the first projected vertical line 130 originally locatedat the fifth row, seventh column, is no longer aligned with the firstvertical line 120, as it is shifted three pixels distance to theleft-hand side with respect to the first vertical line 120. There istherefore a need to shift the fourth pixel of the first projectedvertical line 130 a distance of three pixels to the right, so that afterthe shifting the fourth pixel of the first projected vertical line 130is located at the fifth row, tenth column. Such shifting results in theshifted fourth pixel of the first projected vertical line 130 beingaligned with the first vertical line 120. It is to be noted that in theillustrated example, the second projected vertical line 150 is comprisedof three pixels only, and therefore there is no projection of any pixelof the second projected vertical line 150 at T4.

It is to be noted that although reference is made in the exampledescribed herein to shifting of specific pixels, in some cases theentire pixel rows comprising the shifted pixels are shifted.

It is to be further noted that similarly to the example illustrated inFIG. 1B, also in the example illustrated in FIG. 4, the pose changes ata fixed rate, however this is not necessarily so, as the rate can beincreased or decreased during projection of the pixels of a given frame.The pose change rate also affects the pixel shifting distance, and thehigher the pose change rate is—the larger the pixel shifting distanceis, and the larger the shifting for correction of the pixel shifting isrequired to be. In addition, reference is made to objects in the form oflines, however this is by no means binding and other types of objectsare contemplated as well. Still further, the scale of seven bythirteen-pixel matrix projectable by the projector 210 is arbitrarilyselected and other scales are contemplated as well.

It is to be understood that the presently disclosed subject matter isnot limited in its application to the details set forth in thedescription contained herein or illustrated in the drawings. Thepresently disclosed subject matter is capable of other embodiments andof being practiced and carried out in various ways. Hence, it is to beunderstood that the phraseology and terminology employed herein are forthe purpose of description and should not be regarded as limiting. Assuch, those skilled in the art will appreciate that the conception uponwhich this disclosure is based may readily be utilized as a basis fordesigning other structures, methods, and systems for carrying out theseveral purposes of the present presently disclosed subject matter.

It will also be understood that the system according to the presentlydisclosed subject matter can be implemented, at least partly, as asuitably programmed computer. Likewise, the presently disclosed subjectmatter contemplates a computer program being readable by a computer forexecuting the disclosed method. The presently disclosed subject matterfurther contemplates a machine-readable memory tangibly embodying aprogram of instructions executable by the machine for executing thedisclosed method.

What we claim is:
 1. A system for displaying, on a see-through displaylocated within a moving platform, a frame comprising a plurality ofpixels arranged in a plurality of pixel rows, wherein a time differenceexists between a first time of displaying a first pixel row of the pixelrows and a second time of displaying a given pixel row of the pixelrows, wherein the given pixel row is any pixel row of the pixel rowssubsequent to the first pixel row, and wherein a pose of the see-throughdisplay at the first time is different than the pose of said see throughdisplay at the second time, thereby causing a rolling display effect,the system comprising one or more pose sensors tracking the pose of thesee-through display and a processor configured to: determine, usingfirst information obtained from the pose sensors tracking thesee-through display's pose relative to a fixed coordinate systemestablished in space and second information obtained from one or moresecond pose sensors tracking the pose of the moving platform relative tothe fixed coordinate system established in space, a predicted pose ofsaid see through display at the second time; adjust a position of thegiven pixel row within the frame so as to align the given pixel row withthe predicted pose, thereby at least reducing the rolling displayeffect; and display the given pixel row of the frame on the see-throughdisplay.
 2. The system of claim 1, wherein the adjust and the displayare performed for each succeeding pixel row of the pixel rows,succeeding the first pixel row, wherein the predicted pose for eachsucceeding pixel row is determined based on the time difference betweendisplaying the first pixel row and displaying the correspondingsucceeding pixel row.
 3. The system of claim 1, wherein the adjust andthe display are performed for a plurality of groups of succeeding pixelrows of the pixel rows, succeeding the first pixel row, wherein thepredicted pose for each succeeding groups of succeeding pixel rows isdetermined based on the time difference between displaying the firstpixel row and displaying the corresponding succeeding group ofsucceeding pixel rows.
 4. The system of claim 1, wherein the adjust isperformed on the given pixel row within a buffer comprising the pixelrows prepared to be displayed and wherein the displayed given pixel rowis retrieved from the buffer.
 5. The system of claim 1, wherein theadjust is performed when the difference between the pose and thepredicted pose exceeds a threshold.
 6. The system of claim 1, furthercomprising a projector, wherein the displaying of the given pixel row isperformed by the projector.
 7. The system of claim 6, wherein an imagesource of the projector is an Organic Light Emitting Diode (OLED) imagesource.
 8. The system of claim 1, wherein the pose sensors include atleast one of the following: (a) an inertial measurement unit; (b) amagnetic tracker; or (c) an optical tracker.
 9. The system of claim 1,wherein the frame is obtained from a frame source.
 10. The system ofclaim 1, wherein the see-through display is a visor of a helmet worn bya user operating the moving platform.
 11. A method for displaying, on asee-through display located within a moving platform, a frame comprisinga plurality of pixels arranged in a plurality of pixel rows, wherein atime difference exists between a first time of displaying a first pixelrow of the pixel rows and a second time of displaying a given pixel rowof the pixel rows, wherein the given pixel row is any pixel row of thepixel rows subsequent to the first pixel row, and wherein a pose of thesee-through display at the first time is different than the pose of saidsee through display at the second time, thereby causing a rollingdisplay effect, the method comprising: determining, using firstinformation obtained from the pose sensors tracking the see-throughdisplay's pose relative to a fixed coordinate system established inspace and second information obtained from one or more second posesensors tracking the pose of the moving platform relative to the fixedcoordinate system established in space, a predicted pose of said seethrough display at the second time; adjusting a position of the givenpixel row within the frame so as to align the given pixel row with thepredicted pose, thereby at least reducing the rolling display effect;and displaying the given pixel row of the frame on the see-throughdisplay.
 12. The method of claim 11, wherein the adjusting and thedisplaying are performed for each succeeding pixel row of the pixelrows, succeeding the first pixel row, wherein the predicted pose foreach succeeding pixel row is determined based on the time differencebetween displaying the first pixel row and displaying the correspondingsucceeding pixel row.
 13. The method of claim 11, wherein the adjustingand the displaying are performed for a plurality of groups of succeedingpixel rows of the pixel rows, succeeding the first pixel row, whereinthe predicted pose for each succeeding groups of succeeding pixel rowsis determined based on the time difference between displaying the firstpixel row and displaying the corresponding succeeding group ofsucceeding pixel rows.
 14. The method of claim 11, wherein the adjustingis performed on the given pixel row within a buffer comprising the pixelrows prepared to be displayed and wherein the displayed given pixel rowis retrieved from the buffer.
 15. The method of claim 11, wherein theadjusting is performed when the difference between the pose and thepredicted pose exceeds a threshold.
 16. The method of claim 11 whereinthe displaying of the given pixel row is performed by a projector. 17.The method of claim 16, wherein an image source of the projector is anOrganic Light Emitting Diode (OLED) image source.
 18. The method ofclaim 11, wherein the pose sensors include at least one of thefollowing: (a) an inertial measurement unit; (b) a magnetic tracker; or(c) an optical tracker.
 19. The method of claim 11, wherein thesee-through display is a visor of a helmet worn by a user operating themoving platform.
 20. A non-transitory computer readable storage mediumhaving computer readable program code embodied therewith, the computerreadable program code, executable by at least one processor to perform amethod for displaying, on a see-through display located within a movingplatform, a frame comprising a plurality of pixels arranged in aplurality of pixel rows, wherein a time difference exists between afirst time of displaying a first pixel row of the pixel rows and asecond time of displaying a given pixel row of the pixel rows, whereinthe given pixel row is any pixel row of the pixel rows subsequent to thefirst pixel row, and wherein a pose of the see-through display at thefirst time is different than the pose of said see through display at thesecond time, thereby causing a rolling display effect, the methodcomprising: determining, using first information obtained from the posesensors tracking the see-through display's pose relative to a fixedcoordinate system established in space and second information obtainedfrom one or more second pose sensors tracking the pose of the movingplatform relative to the fixed coordinate system established in space, apredicted pose of said see through display at the second time; adjustinga position of the given pixel row within the frame so as to align thegiven pixel row with the predicted pose, thereby at least reducing therolling display effect; and displaying the given pixel row of the frameon the see-through display.